課程資訊
課程名稱
演算法設計方法論
Design Strategies for Computer Algorithms 
開課學期
106-1 
授課對象
電機資訊學院  資訊工程學研究所  
授課教師
陳健輝 
課號
CSIE7130 
課程識別碼
922 U1810 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期一3,4,5(10:20~13:10) 
上課地點
資105 
備註
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1061CSIE7130_ 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

 
 這門課的目的在於學習演算法設計的六個基本策略,如下所示。

  • Greedy Method
  • Dynamic Programming (DP)
  • Prune-and-Search (P&S)
  • Branch-and-Bound (B&B)
  • Divide-and-Conquer (D&C)
  • Plane Sweep

 這六個基本策略有如演算法領域的微積分與線性代數,歷久而彌新。

 這門課有二次程式考試。期中考要求修課同學設計一個能解決
 the longest common subsequence problem 的 DP 程式與能解決
 two-dimensional linear programming problem 的 P&S 程式。
 期末考要求修課同學設計一個能解決 the 0/1 knapsack problem
 的 B&B 程式與能解決 two-dimensional closest pair problem 的
 D&C 程式。以上四個 problems 與其相對應的演算法在課堂上將
 會詳細介紹。

 修課同學在這門課必須閱讀以下四篇論文 (DP、P&S、B&B、D&C
 各一篇),並繳交書面閱讀報告。所有論文皆有電子檔可供下載。

  • (DP) Wagner, "The string-to-string correction problem," Journal of
    the ACM, vol. 21, no. 1, 1974, pp. 168-173.
  • (P&S) Megiddo, "Linear-time algorithms for linear programming in
    R3 and related problems," SIAM Journal on Computing, vol. 12, no. 4,
    1983, pp. 759-776 (only Section 3 is required).
  • (B&B) A personal assignment problem solved by the branch-and-
    bound strategy (in Section 5-6 of Lee, Tseng, Chang and Tsai's book:
    Introduction to the Design and Analysis of Algorithms).
  • (D&C) Imai, Iri, and Murota, "Voronoi diagram in the Laguerre
    geometry and its applications," SIAM Journal on Computing, vol. 14,
    no. 1, 1985, pp. 93-105.

 每篇閱讀報告必須包含 (但不限) 以下內容,且必須用例子與圖表輔助說明。

  • 問題定義
  • 解法敘述 (勿列出詳細程式碼)
  • 讀後心得

 閱讀報告請以中文書寫 (可夾雜英文專有名詞),勿剪貼原始論文內容
 拼湊而成,應忠實地將自己所理解的部份寫出。例子與圖表可援用原
 始論文或自創(自創較佳),敘述方式可自創不須遵循原始論文。老師將會親自
 批閱同學的閱讀報告並給予建議,評分依據如下。

  • 態度 (是否用心書寫?)
  • 能力 (是否看懂論文且掌握重點?是否敘述清楚且精簡扼要?
    是否使用合適的例子與圖表輔助說明?)

 此外,所有修課同學將分成八組分別研讀並在最後四週依序報告以下八篇
 論文(DP 三篇、P&S 一篇、B&B 與 D&C 各二篇)。所有論文皆有電子檔
 供下載。針對同學的報告,老師將會給予適當建議(若有需要),相信對同學
 日後職場生涯有所助益。

  • (DP) Knuth, "Optimal binary search trees," Acta Informatica, vol.1,
    1971, pp.14-25.
  • (DP) Hsu and Du, "New algorithms for the LCS problem," Journal
    of Computer and System Sciences, vol.29, 1984, pp.133-152.
  • (DP) Wang, Chen, and Park, "On the set LCS and set-set LCS
    problems," Journal of Algorithms, vol.14, no.3, 1993, pp.466-477.
    (ignore Section 3: The Set LCS Problem)
  • (P&S) Bhattacharya, Jadhav, Mukhopadhyay, and Robert, "Optimal
    algorithms for some intersection radius problems," Computing, vol.52,
    no.3, 1994, pp.269-279. (ignore Section 2: Intersection Radius Problem
    for Hyperplanes)
  • (B&B) Wang and Lee, "An Efficient Channel Routing Algorithm to Yield
    an Optimal Solution," IEEE Transactions on computers, vol.39, no.7,
    1990, pp.957-962.
  • (B&B) Section 5-9 of Lee, Tseng, Chang and Tsai's book: Introduction
    to the Design and Analysis of Algorithms.
  • (D&C) Güting, "Optimal divide-and-conquer to compute measure and
    contour for a set of iso-rectangles," Acta Informatica, vol.21, 1984, pp.
    271-291.
  • (D&C) Lee, "An optimal time and minimal space algorithm for rectangle
    intersection problems," International Journal of Computer and Information
    Sciences, vol.15, no.1, 1984, pp.23-32.
  

課程目標
 
  • 熟悉上述六種設計演算法的基本策略
  • 增進 problem solving 與程式設計的能力
  • 增進科技論文閱讀的能力
  • 增進科技論文報告的能力與技巧
  
課程要求
 
  • 修習過資料結構課程
  • 熟悉至少一種程式語言並具備寫程式的能力
  
預期每週課後學習時數
 
Office Hours
每週三 15:30~17:00
每週一 15:30~17:00 備註: 以上為助教面談時間。同學們若欲與本人面談,請事先與本人約定時間。 
指定閱讀
 
 上述12篇論文
  
參考書目
 
 上課內容以本人自編講義為主。
  
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期中考 
20% 
 
2. 
論文報告 
20% 
 
3. 
閱讀報告 
40% 
 
4. 
期末考 
20% 
 
 
課程進度
週次
日期
單元主題
第1週
9/11  課程介紹、Greedy Method 
第2週
9/18  DP 
第3週
9/25  DP 
第4週
10/2  DP、P&S 
第5週
10/9  調整放假 
第6週
10/16  P&S 
第7週
10/23  P&S、B&B 
第8週
10/30  B&B 
第9週
11/6  期中考 
第10週
11/13  B&B、D&C 
第11週
11/20  D&C 
第12週
11/27  D&C、Plane Sweep 
第13週
12/4  論文報告: 第 1 組, 第 2 組 
第14週
12/11  論文報告: 第 3 組, 第 4 組 
第15週
12/18  論文報告: 第 5 組, 第 6 組 
第16週
12/25  論文報告: 第 7 組, 第 8 組 
第17週
1/1  開國紀念日放假 
第18週
1/8  期末考